<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Binh
 * Date: 12/22/13
 * Time: 10:00 AM
 * To change this template use File | Settings | File Templates.
 */

namespace Model;
use \DB;

class Singer extends \Model{
    //Lấy tất cả danh sách ca sĩ
    //Kết quả trả về array(array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME'))
    public static function get_all(){
        $columns = array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME');

        $query = DB::select_array($columns)->from('singer');
        $query->join('genre')->on('genre.GENRE_ID', '=', 'singer.GENRE_ID');

        return $query->execute()->as_array();
    }
    //Lấy mã ca sĩ khi biết tên ca sĩ
    //Kết quả trả về SINGER_ID
    public static function get_id_singer($singer_name){
        $query = DB::select('SINGER_ID')->from('singer')->where('SINGER_NAME', '=', $singer_name);

        return $query->limit(1)->execute()->as_array();
    }

    //Lấy thông tin ca sĩ khi biết ma ca si
    //Kết quả trả về *
    public static function get_communication($singer_id){
        $columns = array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME');

        $query = DB::select_array($columns)->from('singer');
        $query->join('genre')->on('genre.GENRE_ID', '=', 'singer.GENRE_ID');
        $query->where('SINGER_ID', '=', $singer_id);

        return $query->execute()->as_array();
    }

    //Lấy danh sách ca sĩ theo mã thể loại ca sĩ
    //Giá trị nhập vào là mã loại ca sĩ
    //Kết quả trả về danh sách ca sĩ
    public static function get_genre_id($id){
        $columns = array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME');

        $query = DB::select_array($columns)->from('singer');
        $query->join('genre')->on('genre.GENRE_ID', '=', 'singer.GENRE_ID');
        $query->where('singer.GENRE_ID', '=', $id);

        return $query->execute()->as_array();
    }

    //Lấy ca sĩ theo tên ca sĩ
    //Giá trị nhập vào là tên ca sĩ
    //Kết quả trả về ca sĩ
    public static function get_singer_by_name($singer_name){
        $columns = array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME');

        $query = DB::select_array($columns)->from('singer');
        $query->join('genre')->on('genre.GENRE_ID', '=', 'singer.GENRE_ID');
        $query->where('SINGER_NAME', '=', $singer_name);

        return $query->limit(1)->execute()->as_array();
    }

    //Tra cứu ca sĩ theo ten, the loai
    //Giá trị nhập vào $string
    //Giá trị lấy ra array(array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME'))
    public static function search_char($string=""){
        $chars = '%'.$string.'%';
        $columns = array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME');

        $query = DB::select_array($columns)->from('singer');
        $query->join('genre')->on('genre.GENRE_ID', '=', 'singer.GENRE_ID');
        $query->where('SINGER_NAME', 'like', $chars);
        $query->or_where('GENRE_NAME', 'like', $chars);

        return $query->execute()->as_array();
    }

    //Tra cứu ca sĩ theo tên ca sĩ
    //Giá trị nhập vào là tên ca sĩ
    //Giá trị lấy ra array(array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME'))
    public static function search_name($string=""){
        $chars = '%'.$string.'%';
        $columns = array('SINGER_ID', 'SINGER_NAME', 'singer.DESCRIPTION', 'GENRE_NAME');

        $query = DB::select_array($columns)->from('singer');
        $query->join('genre')->on('genre.GENRE_ID', '=', 'singer.GENRE_ID');
        $query->where('SINGER_NAME', 'like', $chars);

        return $query->execute()->as_array();
    }
    //Xoá ca sĩ thuộc mã ca sĩ
    //Giá trị nhập vào $singer_id
    public static function delete_id($singer_id){
        DB::delete('singer')->where('SINGER_ID', '=', $singer_id)->execute();
    }
}